home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / gaim / core.h < prev    next >
C/C++ Source or Header  |  2005-10-18  |  5KB  |  147 lines

  1. /**
  2.  * @file core.h Gaim Core API
  3.  * @defgroup core Gaim Core
  4.  *
  5.  * gaim
  6.  *
  7.  * Gaim is the legal property of its developers, whose names are too numerous
  8.  * to list here.  Please refer to the COPYRIGHT file distributed with this
  9.  * source distribution.
  10.  *
  11.  * This program is free software; you can redistribute it and/or modify
  12.  * it under the terms of the GNU General Public License as published by
  13.  * the Free Software Foundation; either version 2 of the License, or
  14.  * (at your option) any later version.
  15.  *
  16.  * This program is distributed in the hope that it will be useful,
  17.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  18.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  19.  * GNU General Public License for more details.
  20.  *
  21.  * You should have received a copy of the GNU General Public License
  22.  * along with this program; if not, write to the Free Software
  23.  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  24.  */
  25. #ifndef _GAIM_CORE_H_
  26. #define _GAIM_CORE_H_
  27.  
  28. typedef struct GaimCore GaimCore;
  29.  
  30. typedef struct
  31. {
  32.     void (*ui_prefs_init)(void);
  33.     void (*debug_ui_init)(void); /* Unfortunate necessity. */
  34.     void (*ui_init)(void);
  35.     void (*quit)(void);
  36.  
  37. } GaimCoreUiOps;
  38.  
  39. #ifdef __cplusplus
  40. extern "C" {
  41. #endif
  42.  
  43. /**
  44.  * Initializes the core of gaim.
  45.  *
  46.  * This will setup preferences for all the core subsystems.
  47.  *
  48.  * @param ui The ID of the UI using the core. This should be a
  49.  *           unique ID, registered with the gaim team.
  50.  *
  51.  * @return @c TRUE if successful, or @c FALSE otherwise.
  52.  */
  53. gboolean gaim_core_init(const char *ui);
  54.  
  55. /**
  56.  * Quits the core of gaim, which, depending on the UI, may quit the
  57.  * application using the gaim core.
  58.  */
  59. void gaim_core_quit(void);
  60.  
  61. /**
  62.  * Calls gaim_core_quit().  This can be used as the function 
  63.  * passed to gaim_timeout_add() when you want to shutdown Gaim 
  64.  * in a specified amount of time.  When shutting down Gaim 
  65.  * from a plugin, you must use this with a timeout value of 0: 
  66.  *   gaim_timeout_add(0, gaim_core_quitcb, NULL);
  67.  * This is ensures that code from your plugin is not being 
  68.  * executed when gaim_core_quit() is called.  Otherwise you 
  69.  * would get a core dump after gaim_core_quit() executes and 
  70.  * control returns to your plugin because gaim_core_quit() frees 
  71.  * all plugins.
  72.  */
  73. gboolean gaim_core_quit_cb(gpointer unused);
  74.  
  75. /**
  76.  * Returns the version of the core library.
  77.  *
  78.  * @return The version of the core library.
  79.  */
  80. const char *gaim_core_get_version(void);
  81.  
  82. /**
  83.  * Returns the ID of the UI that is using the core.
  84.  *
  85.  * @return The ID of the UI that is currently using the core.
  86.  */
  87. const char *gaim_core_get_ui(void);
  88.  
  89. /**
  90.  * Returns a handle to the gaim core.
  91.  *
  92.  * This is used for such things as signals.
  93.  */
  94. GaimCore *gaim_get_core(void);
  95.  
  96. /**
  97.  * Sets the UI ops for the core.
  98.  *
  99.  * @param A UI ops structure for the core.
  100.  */
  101. void gaim_core_set_ui_ops(GaimCoreUiOps *ops);
  102.  
  103. /**
  104.  * Returns the UI ops for the core.
  105.  *
  106.  * @return The core's UI ops structure.
  107.  */
  108. GaimCoreUiOps *gaim_core_get_ui_ops(void);
  109.  
  110. #ifdef __cplusplus
  111. }
  112. #endif
  113.  
  114. #endif /* _GAIM_CORE_H_ */
  115.  
  116. /*
  117.  
  118.                                                   /===-
  119.                                                 `//"\\   """"`---.___.-""
  120.              ______-==|                         | |  \\           _-"`
  121.        __--"""  ,-/-==\\                        | |   `\        ,'
  122.     _-"       /'    |  \\            ___         / /      \      /
  123.   .'        /       |   \\         /"   "\    /' /        \   /'
  124.  /  ____  /         |    \`\.__/-""  D O   \_/'  /          \/'
  125. /-'"    """""---__  |     "-/"   O G     R   /'        _--"`
  126.                   \_|      /   R    __--_  t ),   __--""
  127.                     '""--_/  T   _-"_>--<_\ h '-" \
  128.                    {\__--_/}    / \\__>--<__\ e B  \
  129.                    /'   (_/  _-"  | |__>--<__|   U  |
  130.                   |   _/) )-"     | |__>--<__|  R   |
  131.                   / /" ,_/       / /__>---<__/ N    |
  132.                  o-o _//        /-"_>---<__-" I    /
  133.                  (^("          /"_>---<__-  N   _-"
  134.                 ,/|           /__>--<__/  A  _-"
  135.              ,//('(          |__>--<__|  T  /                  .----_
  136.             ( ( '))          |__>--<__|    |                 /' _---_"\
  137.          `-)) )) (           |__>--<__|  O |               /'  /     "\`\
  138.         ,/,'//( (             \__>--<__\  R \            /'  //        ||
  139.       ,( ( ((, ))              "-__>--<_"-_  "--____---"' _/'/        /'
  140.     `"/  )` ) ,/|                 "-_">--<_/-__       __-" _/
  141.   ._-"//( )/ )) `                    ""-'_/_/ /"""""""__--"
  142.    ;'( ')/ ,)(                              """"""""""
  143.   ' ') '( (/
  144.     '   '  `
  145.  
  146. */
  147.